perm filename C[5,BGB] blob
sn#013957 filedate 1972-11-29 generic text, type T, neo UTF8
00100 ; ALTERNATE PDP-10 MNEMONICS.
00200 OPDEF LIP[HLR]↔OPDEF LAP[HRR]↔OPDEF DIP[HRLM]
00300 OPDEF DAP[HRRM]↔OPDEF CAR[HLRZ]↔OPDEF CDR[HRRZ]
00400 OPDEF DIPZ[HRLZM]↔OPDEF DAPZ[HRRZM]↔OPDEF ZIP[HRRZS]
00500 OPDEF ZAP[HLLZS]↔OPDEF WIP[HRROS]↔OPDEF WAP[HRRZS]
00600 OPDEF NIP[HLRE]↔OPDEF NAP[HRRE]↔OPDEF NIM[HRREI]
00700 OPDEF LAC[MOVE]↔OPDEF DAC[MOVEM]↔OPDEF SLAC[MOVS]
00800 OPDEF GO[JRST]↔OPDEF LACI[MOVEI]↔OPDEF SLACI[MOVSI]
00900 OPDEF LAPI[HRRI]↔OPDEF LIPI[HRLI]↔OPDEF LACN[MOVN]
01000 OPDEF DACN[MOVNM]↔OPDEF LACM[MOVM]↔OPDEF DACM[MOVMM]
01100 OPDEF FIXX[FIX 233000]↔OPDEF FLOAT[FSC 233]
01200
01300 ; SAIL LIKE SUBROUTINE LINKAGE.
01400 ↓P ←← 17
01500 DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
01600 DEFINE CALL(NAME,X1,X2,X3,X4){
01700 IFDIF <> <X1> {PUSH P,X1↔IFDIF <> <X2> {PUSH P,X2
01800 IFDIF <> <X3> {PUSH P,X3↔IFDIF <> <X4> {PUSH P,X4}}}}
01900 PUSHJ P,NAME}
02000
02100 ;ARGUMENT FETCH.
02200 DEFINE ARG1<-1(17)>↔ DEFINE ARG2<-2(17)>
02300 DEFINE ARG3<-3(17)>↔ DEFINE ARG4<-4(17)>
02400
02500 ;CALL AND RETURN VALUE.
02600 DEFINE SETQ (VAR,LIST){
02700 CALL(LIST)
02800 DAC 1,VAR}
02900
03000 ;RETURN FROM AN N-ARGUMENT SUBROUTINE CALL.
03100 DEFINE POP0J <POPJ 17,>
03200 ↓POP1J.:SUB P,[XWD 2,2]↔GO@2(17)↔DEFINE POP1J<GO POP1J.>
03300 ↓POP2J.:SUB P,[XWD 3,3]↔GO@3(17)↔DEFINE POP2J<GO POP2J.>
03400 ↓POP3J.:SUB P,[XWD 4,4]↔GO@4(17)↔DEFINE POP3J<GO POP3J.>
03500 ↓POP4J.:SUB P,[XWD 5,5]↔GO@5(17)↔DEFINE POP4J<GO POP4J.>
03600
03700 ;ACCUMULATOR TRANSPARENCY.
03800 FOR @$ I←0,17{↓AC$I: 0↔}
03900 DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
04000 DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
04100
04200 ;MACROS FOR ALLOCATING AND NAMING WORKING SPACE.
04300 DEFINE ACCUMULATORS(LIST){ACPTR←←2
04400 FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
04500 DEFINE DECLARE (LIST){
04600 FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
04700
04800 ;FATAL ERROR MESSAGE.
04900 DEFINE FATAL(STR){PUSHJ P,FATAL.↔ASCIZ/STR/}
05000 FATAL.:OUTSTR[BYTE(7)15,12,106,101,124↔"AL - "⊗1↔0]
05100 OUTSTR @(17)↔INCHRW↔GO .-1↔LIT